package fileutil

import (
	"os"
)

func PathExists(path string) (bool, error) {
	_, err := os.Stat(path)
	if err == nil {
		return true, nil
	}
	if os.IsNotExist(err) {
		return false, nil
	}
	return false, err
}

// Mkdir 创建文件夹
func Mkdir(dir string) error {
	exist, err := PathExists(dir)
	if err != nil {
		return err
	} else {
		if !exist {
			return os.MkdirAll(dir, os.ModePerm)
		}
	}
	return nil
}

// Remove 删除文件
func Remove(path string) error {
	exist, err := PathExists(path)
	if err != nil {
		return err
	} else {
		if exist {
			// os.RemoveAll 是遍历删除，文件夹及文件均可使用
			return os.RemoveAll(path)
		}
	}
	return nil
}

// MkFile 创建文件
func MkFile(filePath string) (*os.File, error) {
	exists, err1 := PathExists(filePath)
	if err1 != nil {
		return nil, err1
	}
	if !exists {
		file, err2 := os.OpenFile(filePath, os.O_RDWR|os.O_CREATE, os.ModePerm)
		return file, err2
	}
	return nil, nil
}
